<?php
class ConfigManager{
	public $conf;
	private $filename;
	
	public function __construct($f){
		$this->filename=$f;
		$file = fopen($f, "r") or ex_throw(new Exception("ConfigManager::__construct($f) A fájlt nem lehet megnyitni."));
		while(!feof($file)){
			//var_dump($f=fgets($file));
			if(preg_match("/[^#]*=.*/", $f=fgets($file))){ //ez egy használható sor
				$name=str_str($f, "=", true);
				$value=trim(substr(str_str($f, "="), 1), "\n\t\r\0\x0B"); //everything but space
				$this->conf[$name]=$value;
			}
		}
		fclose($file);
		//var_dump($this->conf);die;
		
	}
     	public function is_row($n){
		if(isset($this->conf[$n])){
			return true;
		}
		return false;
	}
	
    	public function get($n){
		if(isset($this->conf[$n])){
			return $this->conf[$n];
		}
		else{
			
			throw new InvalidArgumentException("ConfigManager::get($n) A sor nem létezik a konfigurációs fájlban (".$this->filename.").");
		}
	}
	public function __get($n){
		return $this->get($n);
	}
     	public function safe_get($n){ //nem baj, ha nem létezik a sor
		try{
			$r=$this->get($n);
		}
		catch (Exception $e){
			return null;
		}
	}
}
?>
